<?php
/**
 * ExtGridPanel class file
 *
 * @author TrueSoftware B.V. (The Netherlands)
 * @link http://www.ext4yii.com
 * @copyright Copyright 2007-2010 TrueSoftware B.V. all rights reserved.
 * @license http://www.ext4yii.com/license/
 *          EVALUATION VERSION - NOT FOR COMMERCIAL USE OR DISTRIBUTION.
 * @version 0.7.2
 */

class ExtGridPanel extends ExtGridPanelBase
{
    /**
     * Gets the value of ExtJS autoExpandColumn property
     * @return String 
     */
    public function getAutoExpandColumn()
    {
    	return $this->getConfig("autoexpandcolumn");
    }

    /**
     * Sets the value of ExtJS autoExpandColumn property
     * @param String $value 
     */
    public function setAutoExpandColumn($value)
    {
    	$this->setConfig("autoexpandcolumn",$value);
    }

    /**
     * Gets the value of ExtJS autoExpandMax property
     * @return Number 
     */
    public function getAutoExpandMax()
    {
    	return $this->getConfig("autoexpandmax");
    }

    /**
     * Sets the value of ExtJS autoExpandMax property
     * @param Number $value 
     */
    public function setAutoExpandMax($value)
    {
    	$this->setConfig("autoexpandmax",$value);
    }

    /**
     * Gets the value of ExtJS autoExpandMin property
     * @return Number 
     */
    public function getAutoExpandMin()
    {
    	return $this->getConfig("autoexpandmin");
    }

    /**
     * Sets the value of ExtJS autoExpandMin property
     * @param Number $value 
     */
    public function setAutoExpandMin($value)
    {
    	$this->setConfig("autoexpandmin",$value);
    }

    /**
     * Gets the value of ExtJS columnLines property
     * @return Boolean 
     */
    public function getColumnLines()
    {
    	return $this->getConfig("columnlines");
    }

    /**
     * Sets the value of ExtJS columnLines property
     * @param Boolean $value 
     */
    public function setColumnLines($value)
    {
    	$this->setConfig("columnlines",$value);
    }

    /**
     * Gets the value of ExtJS ddGroup property
     * @return String 
     */
    public function getDdGroup()
    {
    	return $this->getConfig("ddgroup");
    }

    /**
     * Sets the value of ExtJS ddGroup property
     * @param String $value 
     */
    public function setDdGroup($value)
    {
    	$this->setConfig("ddgroup",$value);
    }

    /**
     * Gets the value of ExtJS ddText property
     * @return String 
     */
    public function getDdText()
    {
    	return $this->getConfig("ddtext");
    }

    /**
     * Sets the value of ExtJS ddText property
     * @param String $value 
     */
    public function setDdText($value)
    {
    	$this->setConfig("ddtext",$value);
    }

    /**
     * Gets the value of ExtJS deferRowRender property
     * @return Boolean 
     */
    public function getDeferRowRender()
    {
    	return $this->getConfig("deferrowrender");
    }

    /**
     * Sets the value of ExtJS deferRowRender property
     * @param Boolean $value 
     */
    public function setDeferRowRender($value)
    {
    	$this->setConfig("deferrowrender",$value);
    }

    /**
     * Gets the value of ExtJS disableSelection property
     * @return Boolean 
     */
    public function getDisableSelection()
    {
    	return $this->getConfig("disableselection");
    }

    /**
     * Sets the value of ExtJS disableSelection property
     * @param Boolean $value 
     */
    public function setDisableSelection($value)
    {
    	$this->setConfig("disableselection",$value);
    }

    /**
     * Gets the value of ExtJS enableColumnHide property
     * @return Boolean 
     */
    public function getEnableColumnHide()
    {
    	return $this->getConfig("enablecolumnhide");
    }

    /**
     * Sets the value of ExtJS enableColumnHide property
     * @param Boolean $value 
     */
    public function setEnableColumnHide($value)
    {
    	$this->setConfig("enablecolumnhide",$value);
    }

    /**
     * Gets the value of ExtJS enableColumnMove property
     * @return Boolean 
     */
    public function getEnableColumnMove()
    {
    	return $this->getConfig("enablecolumnmove");
    }

    /**
     * Sets the value of ExtJS enableColumnMove property
     * @param Boolean $value 
     */
    public function setEnableColumnMove($value)
    {
    	$this->setConfig("enablecolumnmove",$value);
    }

    /**
     * Gets the value of ExtJS enableColumnResize property
     * @return Boolean 
     */
    public function getEnableColumnResize()
    {
    	return $this->getConfig("enablecolumnresize");
    }

    /**
     * Sets the value of ExtJS enableColumnResize property
     * @param Boolean $value 
     */
    public function setEnableColumnResize($value)
    {
    	$this->setConfig("enablecolumnresize",$value);
    }

    /**
     * Gets the value of ExtJS enableDragDrop property
     * @return Boolean 
     */
    public function getEnableDragDrop()
    {
    	return $this->getConfig("enabledragdrop");
    }

    /**
     * Sets the value of ExtJS enableDragDrop property
     * @param Boolean $value 
     */
    public function setEnableDragDrop($value)
    {
    	$this->setConfig("enabledragdrop",$value);
    }

    /**
     * Gets the value of ExtJS enableHdMenu property
     * @return Boolean 
     */
    public function getEnableHdMenu()
    {
    	return $this->getConfig("enablehdmenu");
    }

    /**
     * Sets the value of ExtJS enableHdMenu property
     * @param Boolean $value 
     */
    public function setEnableHdMenu($value)
    {
    	$this->setConfig("enablehdmenu",$value);
    }

    /**
     * Gets the value of ExtJS hideHeaders property
     * @return Boolean 
     */
    public function getHideHeaders()
    {
    	return $this->getConfig("hideheaders");
    }

    /**
     * Sets the value of ExtJS hideHeaders property
     * @param Boolean $value 
     */
    public function setHideHeaders($value)
    {
    	$this->setConfig("hideheaders",$value);
    }

    /**
     * Gets the value of ExtJS maxHeight property
     * @return Number 
     */
    public function getMaxHeight()
    {
    	return $this->getConfig("maxheight");
    }

    /**
     * Sets the value of ExtJS maxHeight property
     * @param Number $value 
     */
    public function setMaxHeight($value)
    {
    	$this->setConfig("maxheight",$value);
    }

    /**
     * Gets the value of ExtJS minColumnWidth property
     * @return Number 
     */
    public function getMinColumnWidth()
    {
    	return $this->getConfig("mincolumnwidth");
    }

    /**
     * Sets the value of ExtJS minColumnWidth property
     * @param Number $value 
     */
    public function setMinColumnWidth($value)
    {
    	$this->setConfig("mincolumnwidth",$value);
    }

    /**
     * Gets the value of ExtJS store property
     * @return Ext.data.Store 
     */
    public function getStore()
    {
    	return $this->getConfig("store");
    }

    /**
     * Sets the value of ExtJS store property
     * @param Ext.data.Store $value 
     */
    public function setStore($value)
    {
    	$this->setConfig("store",$value);
    }

    /**
     * Gets the value of ExtJS stripeRows property
     * @return Boolean 
     */
    public function getStripeRows()
    {
    	return $this->getConfig("striperows");
    }

    /**
     * Sets the value of ExtJS stripeRows property
     * @param Boolean $value 
     */
    public function setStripeRows($value)
    {
    	$this->setConfig("striperows",$value);
    }

    /**
     * Gets the value of ExtJS trackMouseOver property
     * @return Boolean 
     */
    public function getTrackMouseOver()
    {
    	return $this->getConfig("trackmouseover");
    }

    /**
     * Sets the value of ExtJS trackMouseOver property
     * @param Boolean $value 
     */
    public function setTrackMouseOver($value)
    {
    	$this->setConfig("trackmouseover",$value);
    }

    /**
     * Gets the value of ExtJS showLoadMask property
     * @return Boolean 
     */
    public function getShowLoadMask()
    {
    	return $this->getConfig("showloadmask");
    }

    /**
     * Sets the value of ExtJS showLoadMask property
     * @param Boolean $value 
     */
    public function setShowLoadMask($value)
    {
    	$this->setConfig("showloadmask",$value);
    }

    /**
     * Gets the value of ExtJS loadMaskMsg property
     * @return String 
     */
    public function getLoadMaskMsg()
    {
    	return $this->getConfig("loadmaskmsg");
    }

    /**
     * Sets the value of ExtJS loadMaskMsg property
     * @param String $value 
     */
    public function setLoadMaskMsg($value)
    {
    	$this->setConfig("loadmaskmsg",$value);
    }

    /**
     * @description maps to the reconfigure function in Ext.grid.GridPanel
     * @param sender String -
     * @param store Ext.data.Store -
     * @param colModel Ext.grid.ColumnModel - 
     */
    public static function reconfigure_OnAjax($store,$colModel,$sender=null)
    {
    	ExtWidget::checkSetAjaxRequestValue('reconfigure(%s,%s)',
    		array($store,$colModel),
    			 $sender);
    }

    
    public function __construct()
    {
        parent::__construct();
        $this->configmap = array_merge($this->configmap,array(
            'autoexpandcolumn' => 'autoExpandColumn',
            'autoexpandmax' => 'autoExpandMax',
            'autoexpandmin' => 'autoExpandMin',
            'columnlines' => 'columnLines',
            'ddgroup' => 'ddGroup',
            'ddtext' => 'ddText',
            'deferrowrender' => 'deferRowRender',
            'disableselection' => 'disableSelection',
            'enablecolumnhide' => 'enableColumnHide',
            'enablecolumnmove' => 'enableColumnMove',
            'enablecolumnresize' => 'enableColumnResize',
            'enabledragdrop' => 'enableDragDrop',
            'enablehdmenu' => 'enableHdMenu',
            'hideheaders' => 'hideHeaders',
            'maxheight' => 'maxHeight',
            'mincolumnwidth' => 'minColumnWidth',
            'striperows' => 'stripeRows',
            'trackmouseover' => 'trackMouseOver',
            'showloadmask' => 'showLoadMask',
            'loadmaskmsg' => 'loadMaskMsg'
        ));

        $this->eventtable = array_merge($this->eventtable,array(
            'bodyscroll' => array('scrollLeft','scrollTop'),
            'cellclick' => array('sender','rowIndex','columnIndex','e'),
            'cellcontextmenu' => array('sender','rowIndex','cellIndex','e'),
            'celldblclick' => array('sender','rowIndex','columnIndex','e'),
            'cellmousedown' => array('sender','rowIndex','columnIndex','e'),
            'click' => array('e'),
            'columnmove' => array('oldIndex','newIndex'),
            'columnresize' => array('columnIndex','newSize'),
            'containerclick' => array('sender','e'),
            'containercontextmenu' => array('sender','e'),
            'containerdblclick' => array('sender','e'),
            'containermousedown' => array('sender','e'),
            'contextmenu' => array('e'),
            'dblclick' => array('e'),
            'groupclick' => array('sender','groupField','groupValue','e'),
            'groupcontextmenu' => array('sender','groupField','groupValue','e'),
            'groupdblclick' => array('sender','groupField','groupValue','e'),
            'groupmousedown' => array('sender','groupField','groupValue','e'),
            'headerclick' => array('sender','columnIndex','e'),
            'headercontextmenu' => array('sender','columnIndex','e'),
            'headerdblclick' => array('sender','columnIndex','e'),
            'headermousedown' => array('sender','columnIndex','e'),
            'keydown' => array('e'),
            'keypress' => array('e'),
            'mousedown' => array('e'),
            'mouseout' => array('e'),
            'mouseover' => array('e'),
            'mouseup' => array('e'),
            'reconfigure' => array('sender','store','colModel'),
            'rowbodyclick' => array('sender','rowIndex','e'),
            'rowbodycontextmenu' => array('sender','rowIndex','e'),
            'rowbodydblclick' => array('sender','rowIndex','e'),
            'rowbodymousedown' => array('sender','rowIndex','e'),
            'rowclick' => array('sender','rowIndex','e'),
            'rowcontextmenu' => array('sender','rowIndex','e'),
            'rowdblclick' => array('sender','rowIndex','e'),
            'rowmousedown' => array('sender','rowIndex','e'),
            'sortchange' => array('sender','sortInfo'),
            'viewready' => array('sender')
        ));


        $this->proptags = array_merge($this->proptags,array(
            'columnmodel' => true,
            'view' => true,
            'selectionmodel' => true,
            'viewconfig' => true,
            'cellcontextmenu' => true,
            'rowcontextmenu' => true,
            'containercontextmenu' => true,
            'groupcontextmenu' => true,
            'headercontextmenu' => true,
            'rowbodycontextmenu' => true
        ));
        $this->setXType('grid');
        $this->setXClass('Ext.grid.GridPanel');
    }    
}
?>